<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Whisper: ui_socket.h Source File</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Whisper
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<div class="header">
  <div class="headertitle">
<div class="title">ui_socket.h</div>  </div>
</div>
<div class="contents">
<a href="ui__socket_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef __UI_SOCKET_H__</span>
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define __UI_SOCKET_H__ 1</span>
<a name="l00003"></a>00003 <span class="preprocessor"></span>
<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;pthread.h&gt;</span>
<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;sys/socket.h&gt;</span>
<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;netinet/in.h&gt;</span>
<a name="l00007"></a>00007 <span class="preprocessor">#include &lt;arpa/inet.h&gt;</span>
<a name="l00008"></a>00008 
<a name="l00009"></a>00009 <span class="preprocessor">#include &quot;<a class="code" href="properties__reader_8h.html">properties_reader.h</a>&quot;</span>
<a name="l00010"></a>00010 
<a name="l00011"></a><a class="code" href="classCUISocket.html">00011</a> <span class="keyword">class </span><a class="code" href="classCUISocket.html">CUISocket</a>
<a name="l00012"></a>00012 {
<a name="l00013"></a>00013 <span class="keyword">public</span>:
<a name="l00014"></a>00014         <span class="keyword">static</span> <a class="code" href="classCUISocket.html">CUISocket</a>* <a class="code" href="classCUISocket.html#ab006181e1757584fda623337a8c4038a">getInstance</a>();
<a name="l00015"></a>00015         <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#af4406d7bf762e81116e6641e9e6aa38c">destroy</a>();
<a name="l00016"></a>00016 
<a name="l00017"></a>00017         <span class="keywordtype">bool</span> <a class="code" href="classCUISocket.html#afee809112baa5364f51f81e5f2a8212b">setPropertiesReader</a>(<a class="code" href="properties__reader_8h.html#a67847fd00cb49d80dd45f61722eb9a43">CPropertiesReader</a>* pConfig);
<a name="l00018"></a>00018 
<a name="l00023"></a>00023         <span class="keywordtype">bool</span> <a class="code" href="classCUISocket.html#a108336762bfba6e0cd82f90b343d4a8d">startUIServer</a>();
<a name="l00024"></a>00024 
<a name="l00029"></a>00029         <span class="keywordtype">bool</span> <a class="code" href="classCUISocket.html#aa67053ededca7396999cf9236756b837">waitForUIClientAndStartSignal</a>();
<a name="l00030"></a>00030         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#a5c2c555aef9065701ed9332b285a2083">setAmpMultiplier</a>(<span class="keywordtype">double</span> amp);
<a name="l00031"></a>00031         <span class="keywordtype">double</span> <a class="code" href="classCUISocket.html#a6617426e8cac4297824f2915dfcccbb7">getAmpMultiplier</a>();
<a name="l00032"></a>00032 
<a name="l00033"></a><a class="code" href="classCUISocket.html#a49f48904e1979287e35b4bd6360a8616">00033</a>         <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#a49f48904e1979287e35b4bd6360a8616">setRunning</a>(<span class="keywordtype">bool</span>* pRunning) { <a class="code" href="classCUISocket.html#a652b9075b42132035fdd1f405dc8dc70">mRunning</a> = pRunning; }
<a name="l00034"></a>00034 
<a name="l00035"></a>00035 
<a name="l00036"></a>00036         <span class="comment">/*------------------ start of send command methodes ------------------*/</span>
<a name="l00037"></a>00037 
<a name="l00038"></a>00038         <span class="comment">/* All send methodes must be sync with mutex mCommandSendSync. */</span>
<a name="l00039"></a>00039 
<a name="l00043"></a>00043         <span class="keywordtype">bool</span> <a class="code" href="classCUISocket.html#a64f1386ed505563bca2b077c48b9d8bd">sendInfo</a>(uint8_t pLogLevel, 
<a name="l00044"></a>00044                         <span class="keyword">const</span> <span class="keywordtype">char</span>* pDate, <span class="keywordtype">int</span> pDateLen,
<a name="l00045"></a>00045                         <span class="keyword">const</span> <span class="keywordtype">char</span>* pInfo, <span class="keywordtype">int</span> pInfoLen);
<a name="l00046"></a>00046 
<a name="l00050"></a>00050         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#a30862c28b8475def04bed534d90b2cef">sendExtractBufferInfo</a>(uint32_t pUsed, uint32_t pSize);
<a name="l00051"></a>00051 
<a name="l00055"></a>00055         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#af430160332bdae64d31111d423b86653">sendFrameSendLength</a>(uint32_t pLength);
<a name="l00056"></a>00056 
<a name="l00060"></a>00060         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#ab6bd0a3090260efc93b0d1d8a581725d">sendFrameRecvLength</a>(uint32_t pLength, <span class="keywordtype">bool</span> pError);
<a name="l00061"></a>00061 
<a name="l00065"></a>00065         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#a694762d2f9412296c8cc5ecd55696a2b">sendPacketSendLength</a>(uint32_t pLength);
<a name="l00066"></a>00066 
<a name="l00070"></a>00070         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#a8729d9e58f5bb0a6155a85d2c883cb59">sendPacketRecvLength</a>(uint32_t pLength, <span class="keywordtype">bool</span> pCrcError);
<a name="l00071"></a>00071 
<a name="l00075"></a>00075         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#a910519bb460ae46977c7bde573ed11c4">sendStreamSendInfo</a>(<span class="keywordtype">int</span> pId, <span class="keywordtype">int</span> pAck, uint32_t pLength, <span class="keywordtype">bool</span> pReplay);
<a name="l00076"></a>00076 
<a name="l00080"></a>00080         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#aac64188eb647ce49d985e182a689c7c3">sendStreamSendData</a>(<span class="keywordtype">void</span>* pData, <span class="keywordtype">int</span> pLength);
<a name="l00081"></a>00081 
<a name="l00085"></a>00085         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#a70f0d1081cd688dc4dcb85a8cb753154">sendStreamRecvInfo</a>(<span class="keywordtype">int</span> pId, <span class="keywordtype">int</span> pAck, uint32_t pLength, <span class="keywordtype">bool</span> pReplay);
<a name="l00086"></a>00086 
<a name="l00090"></a>00090         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#ad59551d52bfa47b4552198a6ed64dde9">sendStreamRecvData</a>(<span class="keywordtype">void</span>* pData, <span class="keywordtype">int</span> pLength);
<a name="l00091"></a>00091 
<a name="l00095"></a>00095         <span class="keywordtype">bool</span> <a class="code" href="classCUISocket.html#aeee0cd96e8153005e16d50e9b8b4c9c6">sendProtocolOpen</a>();
<a name="l00096"></a>00096 
<a name="l00100"></a>00100         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#a21e4a16f7475965caa7eb1482cc6d515">sendProtocolWrite</a>(<span class="keywordtype">void</span>* pData, <span class="keywordtype">int</span> pLength);
<a name="l00101"></a>00101 
<a name="l00105"></a>00105         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#a0974942bfcf36204ec3b3226d433f3c9">sendProtocolClose</a>();
<a name="l00106"></a>00106 
<a name="l00113"></a>00113         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#a701935eafe95d8deb25ae3575c591d00">sendProtocolReadFeedback</a>(uint32_t pRead, uint32_t pSize);
<a name="l00114"></a>00114 
<a name="l00115"></a>00115         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#afed242cdc5a412bd489354eee0ef9f6c">sendAmpEmbed</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> pAmp);
<a name="l00116"></a>00116         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#a7163501984bd3362b201a219855bc089">sendAmpExtract</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> pAmp);
<a name="l00117"></a>00117 
<a name="l00118"></a>00118         <span class="comment">/*------------------- end of send command methodes -------------------*/</span>
<a name="l00119"></a>00119 
<a name="l00120"></a>00120 
<a name="l00124"></a>00124         <span class="keywordtype">bool</span> <a class="code" href="classCUISocket.html#a35ed529797a42cf07e8fdf76b2e79e4f">getNextProtocolReadByte</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> &amp;pReadValue);
<a name="l00125"></a>00125 
<a name="l00126"></a>00126 <span class="keyword">private</span>:
<a name="l00127"></a><a class="code" href="classCUISocket.html#aa59bd314cded7c165146925bfa68c838">00127</a>         <span class="keyword">static</span> pthread_mutex_t <a class="code" href="classCUISocket.html#aa59bd314cded7c165146925bfa68c838">sSync</a>;
<a name="l00128"></a><a class="code" href="classCUISocket.html#a6dd0c8d6e78cea3dd9ad8600f968edc3">00128</a>         <span class="keyword">static</span> pthread_cond_t <a class="code" href="classCUISocket.html#a6dd0c8d6e78cea3dd9ad8600f968edc3">sConnectSignal</a>;
<a name="l00129"></a><a class="code" href="classCUISocket.html#a5e133f3495bfb9967c972f116132691d">00129</a>         <span class="keyword">static</span> pthread_cond_t <a class="code" href="classCUISocket.html#a5e133f3495bfb9967c972f116132691d">sStartSignal</a>;
<a name="l00130"></a><a class="code" href="classCUISocket.html#aafd44dd43eaeb5300261fba95c9c633a">00130</a>         <span class="keyword">static</span> <a class="code" href="classCUISocket.html">CUISocket</a>* <a class="code" href="classCUISocket.html#aafd44dd43eaeb5300261fba95c9c633a">sInstance</a>;
<a name="l00131"></a><a class="code" href="classCUISocket.html#a12587315854a71b4414b9bc71348376e">00131</a>         <span class="keyword">static</span> <span class="keyword">const</span> std::string <a class="code" href="classCUISocket.html#a12587315854a71b4414b9bc71348376e">sIniSection</a>;
<a name="l00132"></a><a class="code" href="classCUISocket.html#a8ea0cb46eba53eafa17dba409689b209">00132</a>         <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="classCUISocket.html#a8ea0cb46eba53eafa17dba409689b209">sMaxDataLength</a>;
<a name="l00133"></a>00133 
<a name="l00145"></a><a class="code" href="classCUISocket.html#aab63ab870a2d3649d1d66ead11d73eaf">00145</a>         pthread_mutex_t <a class="code" href="classCUISocket.html#aab63ab870a2d3649d1d66ead11d73eaf">mCommandSendSync</a>;
<a name="l00146"></a>00146 
<a name="l00147"></a><a class="code" href="classCUISocket.html#aaec2a23c5e3255a0dffc3a3c62472007">00147</a>         pthread_mutex_t <a class="code" href="classCUISocket.html#aaec2a23c5e3255a0dffc3a3c62472007">mSendSync</a>;
<a name="l00148"></a><a class="code" href="classCUISocket.html#ab788cb96d6bb37631898b83a4697b3dd">00148</a>         <a class="code" href="properties__reader_8h.html#a67847fd00cb49d80dd45f61722eb9a43">CPropertiesReader</a>* <a class="code" href="classCUISocket.html#ab788cb96d6bb37631898b83a4697b3dd">mConfig</a>;
<a name="l00149"></a>00149 
<a name="l00150"></a><a class="code" href="classCUISocket.html#a00bc83d2580f29358c85b605b7c0e51b">00150</a>         pthread_mutex_t <a class="code" href="classCUISocket.html#a00bc83d2580f29358c85b605b7c0e51b">mAmpSync</a>;
<a name="l00151"></a><a class="code" href="classCUISocket.html#aee81859d16cb6c117712296b250bdd6e">00151</a>         <span class="keywordtype">double</span> <a class="code" href="classCUISocket.html#aee81859d16cb6c117712296b250bdd6e">mAmpMulti</a>;
<a name="l00152"></a>00152 
<a name="l00153"></a><a class="code" href="classCUISocket.html#af429e2606f58040c5907b5deb3b4d173">00153</a>         <span class="keywordtype">int</span> <a class="code" href="classCUISocket.html#af429e2606f58040c5907b5deb3b4d173">mServerSocket</a>;
<a name="l00154"></a><a class="code" href="classCUISocket.html#a0a3c06900b0b9fb9a9d920deea0da492">00154</a>         <span class="keyword">struct </span>sockaddr_in <a class="code" href="classCUISocket.html#a0a3c06900b0b9fb9a9d920deea0da492">mServerAddress</a>;
<a name="l00155"></a><a class="code" href="classCUISocket.html#a9549ccfd26af168daef1e63263cae042">00155</a>         pthread_t <a class="code" href="classCUISocket.html#a9549ccfd26af168daef1e63263cae042">mServerThdId</a>;
<a name="l00156"></a>00156 
<a name="l00157"></a><a class="code" href="classCUISocket.html#a3361b8b3e99b76814c206c34b34a2d82">00157</a>         <span class="keywordtype">int</span> <a class="code" href="classCUISocket.html#a3361b8b3e99b76814c206c34b34a2d82">mClientSocket</a>;
<a name="l00158"></a><a class="code" href="classCUISocket.html#a17c820348b6d3f65530ebcb713b23d2f">00158</a>         <span class="keyword">struct </span>sockaddr_in <a class="code" href="classCUISocket.html#a17c820348b6d3f65530ebcb713b23d2f">mClientAddress</a>;
<a name="l00159"></a><a class="code" href="classCUISocket.html#a96082f4805fd90bb93108779862b0df1">00159</a>         <span class="keywordtype">bool</span> <a class="code" href="classCUISocket.html#a96082f4805fd90bb93108779862b0df1">mAllowClients</a>;
<a name="l00160"></a>00160 
<a name="l00161"></a><a class="code" href="classCUISocket.html#aba9f5b2c4634bbbcb8c94b498b886355">00161</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classCUISocket.html#aba9f5b2c4634bbbcb8c94b498b886355">mWaitTime</a>; <span class="comment">// unit: seconds</span>
<a name="l00162"></a><a class="code" href="classCUISocket.html#a22d3544a8839f1b1c0e8746202178f16">00162</a>         <span class="keywordtype">bool</span> <a class="code" href="classCUISocket.html#a22d3544a8839f1b1c0e8746202178f16">mStartSignalValue</a>;
<a name="l00163"></a>00163 
<a name="l00164"></a><a class="code" href="classCUISocket.html#a652b9075b42132035fdd1f405dc8dc70">00164</a>         <span class="keywordtype">bool</span>* <a class="code" href="classCUISocket.html#a652b9075b42132035fdd1f405dc8dc70">mRunning</a>;
<a name="l00165"></a><a class="code" href="classCUISocket.html#aae9ef13605d9560c2ee1feed25252fa4">00165</a>         <span class="keywordtype">bool</span> <a class="code" href="classCUISocket.html#aae9ef13605d9560c2ee1feed25252fa4">mShutdown</a>;
<a name="l00166"></a>00166 
<a name="l00167"></a><a class="code" href="classCUISocket.html#a143e07bf1578ce8f0760164cd38800a8">00167</a>         pthread_mutex_t <a class="code" href="classCUISocket.html#a143e07bf1578ce8f0760164cd38800a8">mProtocolSync</a>;
<a name="l00168"></a><a class="code" href="classCUISocket.html#aeea9fcbf6a6da69cb383f8d4229217cf">00168</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classCUISocket.html#aeea9fcbf6a6da69cb383f8d4229217cf">mProtocolDataLength</a>;
<a name="l00169"></a><a class="code" href="classCUISocket.html#a4931380b93a42c044af927cba4f78a0d">00169</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classCUISocket.html#a4931380b93a42c044af927cba4f78a0d">mProtocolDataNextIndex</a>;
<a name="l00170"></a><a class="code" href="classCUISocket.html#a5cab2065bee4316741e44ff14267d1c9">00170</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* <a class="code" href="classCUISocket.html#a5cab2065bee4316741e44ff14267d1c9">mProtocolData</a>;
<a name="l00171"></a>00171 
<a name="l00172"></a>00172         <a class="code" href="classCUISocket.html#ae2103572309116cadf6bc20dcb708ec2">CUISocket</a>();
<a name="l00173"></a>00173         <span class="keyword">virtual</span> <a class="code" href="classCUISocket.html#a1f85e18bf2626625d0dcfac97e9a7edf">~CUISocket</a>();
<a name="l00174"></a>00174         <a class="code" href="classCUISocket.html#ae2103572309116cadf6bc20dcb708ec2">CUISocket</a>(<span class="keyword">const</span> <a class="code" href="classCUISocket.html">CUISocket</a>&amp; );
<a name="l00175"></a>00175         <a class="code" href="classCUISocket.html">CUISocket</a>&amp; <a class="code" href="classCUISocket.html#a3ca7579043e634d08dff251a5fa0b45b">operator=</a>(<span class="keyword">const</span> <a class="code" href="classCUISocket.html">CUISocket</a>&amp; );
<a name="l00176"></a>00176 
<a name="l00177"></a>00177         <span class="keyword">static</span> <span class="keywordtype">void</span>* <a class="code" href="classCUISocket.html#a87617588abf1b0c38a3f214c55750bb4">pthreadForServerAccept</a>(<span class="keywordtype">void</span>* pUISocket);
<a name="l00178"></a>00178         <span class="keywordtype">void</span>* <a class="code" href="classCUISocket.html#a7ae68505fbd40e081f950f3c8977287b">threadForServerAccept</a>();
<a name="l00179"></a>00179 
<a name="l00180"></a>00180         <span class="keywordtype">void</span> <a class="code" href="classCUISocket.html#a297b14c0cbaf927e0f4fd87a9f8120a4">clientFunction</a>();
<a name="l00181"></a>00181 
<a name="l00182"></a>00182         <span class="keywordtype">int</span> <a class="code" href="classCUISocket.html#a120684bbc1fc19767e6243bf079d7d1e">fullRecv</a>(<span class="keywordtype">void</span> *pBuf, <span class="keywordtype">int</span> pLength);
<a name="l00183"></a>00183         <span class="keywordtype">int</span> <a class="code" href="classCUISocket.html#ac2f5d523f1222c777067f0537488f09f">fullSend</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *pBuf, <span class="keywordtype">int</span> pLength);
<a name="l00184"></a>00184 
<a name="l00188"></a>00188         <span class="keywordtype">int</span> <a class="code" href="classCUISocket.html#ae24d01cb02c33e2605c1fe7f66086acd">sendLength</a>(uint32_t pLen);
<a name="l00189"></a>00189 
<a name="l00193"></a>00193         <span class="keywordtype">int</span> <a class="code" href="classCUISocket.html#a0a247cf861ecefb2d7ad2e0f7f6d0d47">sendData</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* pPayload, <span class="keywordtype">int</span> pLen);
<a name="l00194"></a>00194 
<a name="l00212"></a>00212         <span class="keywordtype">bool</span> <a class="code" href="classCUISocket.html#a1d827cb5b450f0406071a240532c1fcf" title="Create and send a command over the socket to the UI.">sendCommand</a>(uint8_t pCommand, <span class="keyword">const</span> <span class="keywordtype">void</span>* pPayload, <span class="keywordtype">int</span> pLen);
<a name="l00213"></a>00213 
<a name="l00222"></a>00222         <span class="keywordtype">bool</span> <a class="code" href="classCUISocket.html#ab8db7809dec663e4f2ab1f2917b7314d">sendConfiguration</a>();
<a name="l00223"></a>00223 
<a name="l00227"></a>00227         std::string <a class="code" href="classCUISocket.html#a47e3f1e51216c4553768ca8ac3dbba7a">printData</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> pOffset, <span class="keyword">const</span> <span class="keywordtype">void</span> *pData, <span class="keywordtype">int</span> pLen);
<a name="l00228"></a>00228 };
<a name="l00229"></a>00229 
<a name="l00230"></a>00230 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated on Wed Jan 25 2012 22:00:40 for Whisper by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.5.1
</small></address>

</body>
</html>
